package com.cysion.otbox.ext

import android.text.TextUtils
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken
import java.lang.Exception

/*
* 全局使用gson解析对象
* 如有需要另外配置的，单独写一个就行
*
* */
val gson: Gson by lazy {
    GsonBuilder().create()
}


/*
* json解析
* 传入json，指明类型，则可解析
* 比如gson.fromJson<Book>(json)
* */
inline fun <reified T> Gson.fromJson(json: String?): T? {
    if (TextUtils.isEmpty(json)) {
        return null
    }
    try {
        val res: T? = gson.fromJson(json, object : TypeToken<T>() {}.type)
        return res
    } catch (e: Exception) {
        logd("fromjson: json is error ${e.message}")
        return null
    }
}
